package com.whfc.safety.service;

import com.whfc.common.exception.BizException;
import com.whfc.common.result.PageData;
import com.whfc.safety.dto.SafetyFineDTO;
import com.whfc.safety.dto.SafetyFineNumDTO;
import com.whfc.safety.param.SafetyFineAddParam;
import com.whfc.safety.param.SafetyFineCompleteParam;

import java.util.Date;
import java.util.List;

/**
 * @author hw
 * @description 安全罚款单
 * @date 2021/8/13
 */
public interface SafetyFineService {

    /**
     * 添加安全罚单
     *
     * @param param
     * @throws BizException
     */
    void add(SafetyFineAddParam param) throws BizException;

    /**
     * 安全罚款统计
     *
     * @param deptId
     * @param corpName
     * @param userName
     * @param startTime
     * @param endTime
     * @return
     * @throws BizException
     */
    SafetyFineNumDTO num(Integer deptId, String corpName, String userName,
                         Date startTime, Date endTime) throws BizException;

    /**
     * 安全罚单列表
     *
     * @param deptId
     * @param corpName
     * @param userName
     * @param state
     * @param startTime
     * @param endTime
     * @param pageSize
     * @param pageNum
     * @return
     * @throws BizException
     */
    PageData<SafetyFineDTO> list(Integer deptId, String corpName, String userName, String state,
                                 Date startTime, Date endTime, Integer pageSize, Integer pageNum) throws BizException;


    /**
     * 删除安全罚单
     *
     * @param fineId
     * @throws BizException
     */
    void del(Integer fineId) throws BizException;

    /**
     * 审批/批准罚款单
     *
     * @param param
     * @throws BizException
     */
    void complete(SafetyFineCompleteParam param) throws BizException;

    /**
     * 罚款单导出
     * @param fineIds
     * @param deptId
     * @throws BizException
     */
    void fineExport(List<Integer> fineIds, Integer deptId) throws BizException;

    void deleteBatch(List<Integer> idList);
}
